package com.atguigu.b_test;

import java.util.Arrays;

/*
    创建一个长度为6的int型数组，
    要求数组元素的值都在1-30之间，
    且是随机赋值。同时，要求元素的值各不相同。

    去重问题 : 不要把元素存进去了,再考虑去重问题 --> 过滤问题
 */
public class Test12 {
    public static void main(String[] args) {
        //动态初始化数组
        int[] arr = new int[6];

        for (int j = 0; j < arr.length; j++) { //遍历数组给数组元素赋值
            //定义零时变量
            int x = -1;

            //死循环包裹生成随机数的操作并判断是否存在这样重复的元素
            loop : while(true){ //不断地生成随机数
                int num = (int) (Math.random() * 30 + 1);

                for (int i = 0; i < arr.length; i++) { //排除重复的元素
                    int oldNum = arr[i];
                    if (num == oldNum){
                        //出现了重复的值,就继续生成新的随机数
                        continue loop;
                    }
                }

                //for循环能结束走到 for循环下方 说明整个数组中没有 生成的随机数元素
                x = num;
                break ; //结束这一次随机数的生成
            }

            //在这里用x -> 代表的是数组中不重复的元素
            arr[j] = x;
        }

        //遍历数组
        System.out.println(Arrays.toString(arr));
    }
}
